<!DOCTYPE html>
<html lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>modify_component_relations [HALCON算子参考手册]</title>
<style type="text/css">
      body {
    color: #000000;
    background-color: #ffffff;
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
}

.body_main {
    margin-left: 35px;
    margin-right: 35px;
}

@media screen and (min-width:992px) {

    .body_main {
        margin-left: 10%;
        margin-right: 10%;
    }

    table.toctable {
        width: 80%
    }
}

@media screen and (min-width:1400px) {

    .body_main {
        margin-left: 15%;
        margin-right: 15%;
    }

    table.toctable {
        width: 70%
    }
}

body>div ul ul {
    margin-left: inherit;
}

a:link {
    color: #0044cc;
}

a:link,
a:visited {
    text-decoration: none;
}

a:link:hover,
a:visited:hover {
    text-decoration: underline;
}

th {
    text-align: left;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    text-rendering: optimizeLegibility;
    color: #666666;
}

code {
    font-family: monospace,monospace;
}

h1 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

h2 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

hr {
    border: 0;
    border-top: solid 1px #f28d26;
}

.pre {
    display: block;
    padding-bottom: 1ex;
    font-family: monospace;
    white-space: pre;
}

pre {
    font-family: monospace, monospace;
    padding: 1ex;
    white-space: pre-wrap;
}

.toc {
    font-size: 80%;
    border-top: 1px dashed #f28d26;
    border-bottom: 1px dashed #f28d26;
    padding-top: 5px;
    padding-bottom: 5px;
}

.inv {
    margin: 0;
    border: 0;
    padding: 0;
}

.banner {
    color: #666666;
    padding-left: 1em;
}

.logo {
    background-color: white;
}

.keyboard {
    font-size: 80%;
    padding-left: 3px;
    padding-right: 3px;
    border-radius: 5px;
    border-width: 1px;
    border-style: solid;
    border-color: #f28d26;
    background-color: #f3f3f3;
}

.warning {
    margin-top: 2ex;
    margin-bottom: 1ex;
    padding: 10px;
    text-align: center;
    border: 1px solid;
    color: #bb0000;
    background-color: #fff7f7
}

.imprint {
    margin-top: 1ex;
    font-size: 80%;
    color: #666666;
}

.imprinthead {
    font-weight: bolder;
    color: #666666;
}

.indexlink {
    text-align: right;
    padding-bottom: 5px;
}

.postscript {
    margin-top: 2ex;
    font-size: 80%;
    color: #666666
}

.evenrow {
    background-color: #e7e7ef;
    vertical-align: top;
}

.oddrow {
    background-color: #f7f7ff;
    vertical-align: top;
}

.headrow {
    background-color: #97979f;
    color: #ffffff;
    vertical-align: top;
}

.logorow {
    vertical-align: top;
}

.error {
    color: red;
}

.var {
    font-style: italic
}

.halconoperator {
    font-family: monospace, monospace;
}

span.operator {
    font-family: monospace, monospace;
}

span.procedure {
    font-family: monospace, monospace;
}

span.operation {
    font-family: monospace, monospace;
}

span.feature {
    font-family: Arial, Helvetica, Homerton, sans-serif;
}

ul {
    padding-left: 1.2em;
}

li.dot {
    list-style-type: square;
    color: #f28d26;
}

.breadcrumb {
    font-size: 80%;
    color: white;
    background-color: #062d64;
    margin-bottom: 20px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 15px;
}

.webbar {
    font-size: 80%;
    background-color: #dddddd;
    margin-top: 0px;
    margin-left: -35px;
    margin-right: -35px;
    margin-bottom: 0px;
    padding-top: 5px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 5px;
}

.footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    border-top: 1px dashed #f28d26;
    font-size: 80%;
    color: #666666;
    padding-bottom: 8px;
}

.footer .socialmedia a {
    padding-left: 7px;
}

.socialmedia {
    padding-top: 10px;
}

.copyright {
    margin-top: 19px;
}

.breadcrumb a {
    color: #ffffff;
    border-bottom: 1px solid white;
}

.breadcrumb a:link:hover,
.breadcrumb a:visited:hover {
    text-decoration: none;
    border-bottom: none;
}

.heading {
    margin-top: 1ex;
    font-size: 110%;
    font-weight: bold;
    color: #666666;
}

.text {
    color: black;
}

.example {
    font-size: 80%;
    background-color: #f3f3f3;
    border: 1px dashed #666666;
    padding: 10px;
}

.displaymath {
    display: block;
    text-align: center;
    margin-top: 1ex;
    margin-bottom: 1ex;
}

.title {
    float: left;
    padding-top: 3px;
    padding-bottom: 3px;
}

.signnote {
    font-family: Arial, Helvetica, Homerton, sans-serif;
    font-size: 80%;
    color: #666666;
    font-weight: lighter;
    font-style: italic
}

.par {
    margin-bottom: 1.5em;
}

.parhead {
    text-align: right;
}

.parname {
    float: left;
}

.pardesc {
    font-size: 85%;
    margin-top: 0.5em;
    margin-bottom: 0.5em;
    margin-left: 2em;
}

.parcat {
    color: #666;
    font-weight: bold;
}

*[data-if=cpp],
*[data-if=c],
*[data-if=dotnet],
*[data-if=com],
*[data-if=python] {
    display: none;
}

.tabbar {
    text-align: right;
    border-bottom: 1px solid #f28d26;
    margin-bottom: 0.5em;
}

ul.tabs {
    padding-top: 3px;
    padding-bottom: 3px;
    margin-top: 10px;
    margin-bottom: 0;
    font-size: 80%
}

ul.tabs li {
    padding-top: 3px;
    padding-bottom: 3px;
    display: inline;
    overflow: hidden;
    list-style-type: none;
    margin: 0;
    margin-left: 8px;
    border-top: 1px solid #666;
    border-left: 1px solid #666;
    border-right: 1px solid #666;
}

ul.tabs li.active {
    border-left: 1px solid #f28d26;
    border-right: 1px solid #f28d26;
    border-top: 1px solid #f28d26;
    border-bottom: 1px solid #fff;
}

ul.tabs li.inactive {
    background-color: #eee;
}

ul.tabs li a {
    padding-left: 5px;
    padding-right: 5px;
    color: #666;
}

ul.tabs li a:link:hover {
    text-decoration: none;
}

ul.tabs li.inactive a {
    color: #666;
}

ul.tabs li.active a {
    color: black;
}

dl.generic dd {
    margin-bottom: 1em;
}

.pari {
    color: olive;
}

.paro {
    color: maroon;
}

.comment {
    font-size: 80%;
    color: green;
    white-space: nowrap;
}

table.grid {
    border-collapse: collapse;
}

table.grid td {
    padding: 5px;
    border: 1px solid;
}

table.layout {
    border: 0px;
}

table.layout td {
    padding: 5px;
}

table.table {
    border-collapse: collapse;
}

table.table td {
    padding: 5px;
    border-left: 0px;
    border-right: 0px;
}

table.table tr:last-child {
    border-bottom: 1px solid;
}

table.table th {
    padding: 5px;
    border-top: 1px solid;
    border-bottom: 1px solid;
    border-left: 0px;
    border-right: 0px;
}

.details_summary {
    cursor: pointer;
}

table.toctable {
    width: 100%;
}

table.toctable col:first-child {
    width: 20%;
}

table.toctable col:nth-last-child(2) {
    width: 8%;
}

table.altcolored tr:nth-child(even) {
    background-color: #f3f3f3;
}

    </style>
<!--OP_REF_STYLE_END-->
<script>
    <!--
var active_lang='hdevelop';function switchVisibility(obj,active_lang,new_lang)
{var display_style='inline';
for(var i=0;i<obj.length;i++)
{if(obj.item(i).getAttribute('data-if')==new_lang)
{obj.item(i).style.display=display_style;}
if(obj.item(i).getAttribute('data-if')==active_lang)
{obj.item(i).style.display='none';}}
return;}
function toggleLanguage(new_lang,initial)
{if(active_lang!=new_lang)
{var lis=document.getElementsByTagName('li');for(var i=0;i<lis.length;i++)
{if(lis.item(i).id=='syn-'+new_lang)
{lis.item(i).className='active';}
else
{lis.item(i).className='inactive';}}
var divs=document.getElementsByTagName('div');var spans=document.getElementsByTagName('span');switchVisibility(divs,active_lang,new_lang);switchVisibility(spans,active_lang,new_lang);if(!initial)
{setCookie("halcon_reference_language",new_lang,null,null);}
active_lang=new_lang;}
return;}
function setCookie(name,value,domain,exp_offset,path,secure)
{localStorage.setItem(name,value);}
function getCookie(name)
{return localStorage.getItem(name);}
function initialize()
{var qs=location.href.split('?')[1];var qs_lang_raw=location.href.split('interface=')[1];var qs_lang;if(qs_lang_raw)
{qs_lang=qs_lang_raw.split('#')[0];}
var cookie_lang=getCookie("halcon_reference_language");var new_lang;if((qs_lang=="hdevelop")||(qs_lang=="dotnet")||(qs_lang=="python")||(qs_lang=="cpp")||(qs_lang=="c"))
{new_lang=qs_lang;setCookie("halcon_reference_language",new_lang,null,null);}
else if((cookie_lang=="hdevelop")||(cookie_lang=="dotnet")||(cookie_lang=="python")||(cookie_lang=="cpp")||(cookie_lang=="c"))
{new_lang=cookie_lang;}
else
{new_lang="hdevelop";}
toggleLanguage(new_lang,1);return;}
-->

  </script>
</head>
<body onload="initialize();">
<div class="breadcrumb">
<br class="inv"><a href="index.html">目录</a> / <a href="toc_matching.html">Matching</a> / <a href="toc_matching_componentbased.html">Component-Based</a><br class="inv">
</div>
<div class="body_main">
<div class="tabbar"><ul class="tabs">
<li id="syn-hdevelop" class="active"><a href="javascript:void(0);" onclick="toggleLanguage('hdevelop')" onfocus="blur()">HDevelop</a></li>
<li id="syn-dotnet" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('dotnet')" onfocus="blur()">.NET</a></li>
<li id="syn-python" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('python')" onfocus="blur()">Python</a></li>
<li id="syn-cpp" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('cpp')" onfocus="blur()">C++</a></li>
<li id="syn-c" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('c')" onfocus="blur()">C</a></li>
</ul></div>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<!--OP_REF_HEADER_END-->
<h1 id="sec_name">
<span data-if="hdevelop" style="display:inline;">modify_component_relations</span><span data-if="c" style="display:none;">T_modify_component_relations</span><span data-if="cpp" style="display:none;">ModifyComponentRelations</span><span data-if="dotnet" style="display:none;">ModifyComponentRelations</span><span data-if="python" style="display:none;">modify_component_relations</span> (算子名称)</h1>
<h2>名称</h2>
<p><code><span data-if="hdevelop" style="display:inline;">modify_component_relations</span><span data-if="c" style="display:none;">T_modify_component_relations</span><span data-if="cpp" style="display:none;">ModifyComponentRelations</span><span data-if="dotnet" style="display:none;">ModifyComponentRelations</span><span data-if="python" style="display:none;">modify_component_relations</span></code> — Modify the relations within a training result.</p>
<h2 id="sec_synopsis">参数签名</h2>
<div data-if="hdevelop" style="display:inline;">
<p>
<code><b>modify_component_relations</b>( :  : <a href="#ComponentTrainingID"><i>ComponentTrainingID</i></a>, <a href="#ReferenceComponent"><i>ReferenceComponent</i></a>, <a href="#ToleranceComponent"><i>ToleranceComponent</i></a>, <a href="#PositionTolerance"><i>PositionTolerance</i></a>, <a href="#AngleTolerance"><i>AngleTolerance</i></a> : )</code></p>
</div>
<div data-if="c" style="display:none;">
<p>
<code>Herror <b>T_modify_component_relations</b>(const Htuple <a href="#ComponentTrainingID"><i>ComponentTrainingID</i></a>, const Htuple <a href="#ReferenceComponent"><i>ReferenceComponent</i></a>, const Htuple <a href="#ToleranceComponent"><i>ToleranceComponent</i></a>, const Htuple <a href="#PositionTolerance"><i>PositionTolerance</i></a>, const Htuple <a href="#AngleTolerance"><i>AngleTolerance</i></a>)</code></p>
</div>
<div data-if="cpp" style="display:none;">
<p>
<code>void <b>ModifyComponentRelations</b>(const HTuple&amp; <a href="#ComponentTrainingID"><i>ComponentTrainingID</i></a>, const HTuple&amp; <a href="#ReferenceComponent"><i>ReferenceComponent</i></a>, const HTuple&amp; <a href="#ToleranceComponent"><i>ToleranceComponent</i></a>, const HTuple&amp; <a href="#PositionTolerance"><i>PositionTolerance</i></a>, const HTuple&amp; <a href="#AngleTolerance"><i>AngleTolerance</i></a>)</code></p>
<p>
<code>void <a href="HComponentTraining.html">HComponentTraining</a>::<b>ModifyComponentRelations</b>(const HTuple&amp; <a href="#ReferenceComponent"><i>ReferenceComponent</i></a>, const HTuple&amp; <a href="#ToleranceComponent"><i>ToleranceComponent</i></a>, const HTuple&amp; <a href="#PositionTolerance"><i>PositionTolerance</i></a>, const HTuple&amp; <a href="#AngleTolerance"><i>AngleTolerance</i></a>) const</code></p>
<p>
<code>void <a href="HComponentTraining.html">HComponentTraining</a>::<b>ModifyComponentRelations</b>(const HString&amp; <a href="#ReferenceComponent"><i>ReferenceComponent</i></a>, const HString&amp; <a href="#ToleranceComponent"><i>ToleranceComponent</i></a>, double <a href="#PositionTolerance"><i>PositionTolerance</i></a>, double <a href="#AngleTolerance"><i>AngleTolerance</i></a>) const</code></p>
<p>
<code>void <a href="HComponentTraining.html">HComponentTraining</a>::<b>ModifyComponentRelations</b>(const char* <a href="#ReferenceComponent"><i>ReferenceComponent</i></a>, const char* <a href="#ToleranceComponent"><i>ToleranceComponent</i></a>, double <a href="#PositionTolerance"><i>PositionTolerance</i></a>, double <a href="#AngleTolerance"><i>AngleTolerance</i></a>) const</code></p>
<p>
<code>void <a href="HComponentTraining.html">HComponentTraining</a>::<b>ModifyComponentRelations</b>(const wchar_t* <a href="#ReferenceComponent"><i>ReferenceComponent</i></a>, const wchar_t* <a href="#ToleranceComponent"><i>ToleranceComponent</i></a>, double <a href="#PositionTolerance"><i>PositionTolerance</i></a>, double <a href="#AngleTolerance"><i>AngleTolerance</i></a>) const  <span class="signnote">
            (
            Windows only)
          </span></code></p>
</div>
<div data-if="com" style="display:none;"></div>
<div data-if="dotnet" style="display:none;">
<p>
<code>static void <a href="HOperatorSet.html">HOperatorSet</a>.<b>ModifyComponentRelations</b>(<a href="HTuple.html">HTuple</a> <a href="#ComponentTrainingID"><i>componentTrainingID</i></a>, <a href="HTuple.html">HTuple</a> <a href="#ReferenceComponent"><i>referenceComponent</i></a>, <a href="HTuple.html">HTuple</a> <a href="#ToleranceComponent"><i>toleranceComponent</i></a>, <a href="HTuple.html">HTuple</a> <a href="#PositionTolerance"><i>positionTolerance</i></a>, <a href="HTuple.html">HTuple</a> <a href="#AngleTolerance"><i>angleTolerance</i></a>)</code></p>
<p>
<code>void <a href="HComponentTraining.html">HComponentTraining</a>.<b>ModifyComponentRelations</b>(<a href="HTuple.html">HTuple</a> <a href="#ReferenceComponent"><i>referenceComponent</i></a>, <a href="HTuple.html">HTuple</a> <a href="#ToleranceComponent"><i>toleranceComponent</i></a>, <a href="HTuple.html">HTuple</a> <a href="#PositionTolerance"><i>positionTolerance</i></a>, <a href="HTuple.html">HTuple</a> <a href="#AngleTolerance"><i>angleTolerance</i></a>)</code></p>
<p>
<code>void <a href="HComponentTraining.html">HComponentTraining</a>.<b>ModifyComponentRelations</b>(string <a href="#ReferenceComponent"><i>referenceComponent</i></a>, string <a href="#ToleranceComponent"><i>toleranceComponent</i></a>, double <a href="#PositionTolerance"><i>positionTolerance</i></a>, double <a href="#AngleTolerance"><i>angleTolerance</i></a>)</code></p>
</div>
<div data-if="python" style="display:none;">
<p>
<code>def <b>modify_component_relations</b>(<a href="#ComponentTrainingID"><i>component_training_id</i></a>: HHandle, <a href="#ReferenceComponent"><i>reference_component</i></a>: MaybeSequence[Union[int, str]], <a href="#ToleranceComponent"><i>tolerance_component</i></a>: MaybeSequence[Union[int, str]], <a href="#PositionTolerance"><i>position_tolerance</i></a>: MaybeSequence[float], <a href="#AngleTolerance"><i>angle_tolerance</i></a>: MaybeSequence[float]) -&gt; None</code></p>
</div>
<h2 id="sec_description">描述</h2>
<p><code><span data-if="hdevelop" style="display:inline">modify_component_relations</span><span data-if="c" style="display:none">modify_component_relations</span><span data-if="cpp" style="display:none">ModifyComponentRelations</span><span data-if="com" style="display:none">ModifyComponentRelations</span><span data-if="dotnet" style="display:none">ModifyComponentRelations</span><span data-if="python" style="display:none">modify_component_relations</span></code> modifies the relations between
the model components within the component training result
<a href="#ComponentTrainingID"><i><code><span data-if="hdevelop" style="display:inline">ComponentTrainingID</span><span data-if="c" style="display:none">ComponentTrainingID</span><span data-if="cpp" style="display:none">ComponentTrainingID</span><span data-if="com" style="display:none">ComponentTrainingID</span><span data-if="dotnet" style="display:none">componentTrainingID</span><span data-if="python" style="display:none">component_training_id</span></code></i></a>. The selection of the relation(s) that
should be changed is performed by setting
<a href="#ReferenceComponent"><i><code><span data-if="hdevelop" style="display:inline">ReferenceComponent</span><span data-if="c" style="display:none">ReferenceComponent</span><span data-if="cpp" style="display:none">ReferenceComponent</span><span data-if="com" style="display:none">ReferenceComponent</span><span data-if="dotnet" style="display:none">referenceComponent</span><span data-if="python" style="display:none">reference_component</span></code></i></a> and <a href="#ToleranceComponent"><i><code><span data-if="hdevelop" style="display:inline">ToleranceComponent</span><span data-if="c" style="display:none">ToleranceComponent</span><span data-if="cpp" style="display:none">ToleranceComponent</span><span data-if="com" style="display:none">ToleranceComponent</span><span data-if="dotnet" style="display:none">toleranceComponent</span><span data-if="python" style="display:none">tolerance_component</span></code></i></a>,
respectively. This means that the relative movement of component
<a href="#ToleranceComponent"><i><code><span data-if="hdevelop" style="display:inline">ToleranceComponent</span><span data-if="c" style="display:none">ToleranceComponent</span><span data-if="cpp" style="display:none">ToleranceComponent</span><span data-if="com" style="display:none">ToleranceComponent</span><span data-if="dotnet" style="display:none">toleranceComponent</span><span data-if="python" style="display:none">tolerance_component</span></code></i></a> with respect to the component
<a href="#ReferenceComponent"><i><code><span data-if="hdevelop" style="display:inline">ReferenceComponent</span><span data-if="c" style="display:none">ReferenceComponent</span><span data-if="cpp" style="display:none">ReferenceComponent</span><span data-if="com" style="display:none">ReferenceComponent</span><span data-if="dotnet" style="display:none">referenceComponent</span><span data-if="python" style="display:none">reference_component</span></code></i></a> is modified.
</p>
<p>The size of the change is specified as follows: By specifying a
position tolerance <a href="#PositionTolerance"><i><code><span data-if="hdevelop" style="display:inline">PositionTolerance</span><span data-if="c" style="display:none">PositionTolerance</span><span data-if="cpp" style="display:none">PositionTolerance</span><span data-if="com" style="display:none">PositionTolerance</span><span data-if="dotnet" style="display:none">positionTolerance</span><span data-if="python" style="display:none">position_tolerance</span></code></i></a>, the semi-axes of the
rectangle that describes the reference point's movement (see
<a href="train_model_components.html"><code><span data-if="hdevelop" style="display:inline">train_model_components</span><span data-if="c" style="display:none">train_model_components</span><span data-if="cpp" style="display:none">TrainModelComponents</span><span data-if="com" style="display:none">TrainModelComponents</span><span data-if="dotnet" style="display:none">TrainModelComponents</span><span data-if="python" style="display:none">train_model_components</span></code></a>) are enlarged by
<a href="#PositionTolerance"><i><code><span data-if="hdevelop" style="display:inline">PositionTolerance</span><span data-if="c" style="display:none">PositionTolerance</span><span data-if="cpp" style="display:none">PositionTolerance</span><span data-if="com" style="display:none">PositionTolerance</span><span data-if="dotnet" style="display:none">positionTolerance</span><span data-if="python" style="display:none">position_tolerance</span></code></i></a> pixels.  Accordingly, by specifying an
orientation tolerance <a href="#AngleTolerance"><i><code><span data-if="hdevelop" style="display:inline">AngleTolerance</span><span data-if="c" style="display:none">AngleTolerance</span><span data-if="cpp" style="display:none">AngleTolerance</span><span data-if="com" style="display:none">AngleTolerance</span><span data-if="dotnet" style="display:none">angleTolerance</span><span data-if="python" style="display:none">angle_tolerance</span></code></i></a>, the angle range that
describes the variation of the relative orientation (see
<a href="train_model_components.html"><code><span data-if="hdevelop" style="display:inline">train_model_components</span><span data-if="c" style="display:none">train_model_components</span><span data-if="cpp" style="display:none">TrainModelComponents</span><span data-if="com" style="display:none">TrainModelComponents</span><span data-if="dotnet" style="display:none">TrainModelComponents</span><span data-if="python" style="display:none">train_model_components</span></code></a>) is enlarged by
<a href="#AngleTolerance"><i><code><span data-if="hdevelop" style="display:inline">AngleTolerance</span><span data-if="c" style="display:none">AngleTolerance</span><span data-if="cpp" style="display:none">AngleTolerance</span><span data-if="com" style="display:none">AngleTolerance</span><span data-if="dotnet" style="display:none">angleTolerance</span><span data-if="python" style="display:none">angle_tolerance</span></code></i></a> to both sides. Consequently, negative
tolerance values lead to a decreased size of the relations. The
operator <code><span data-if="hdevelop" style="display:inline">modify_component_relations</span><span data-if="c" style="display:none">modify_component_relations</span><span data-if="cpp" style="display:none">ModifyComponentRelations</span><span data-if="com" style="display:none">ModifyComponentRelations</span><span data-if="dotnet" style="display:none">ModifyComponentRelations</span><span data-if="python" style="display:none">modify_component_relations</span></code> is particularly useful
when the training images that were used during the training do not
cover the entire spectrum of the relative movements.
</p>
<p>In order to select the relations that should be modified, values for
<a href="#ReferenceComponent"><i><code><span data-if="hdevelop" style="display:inline">ReferenceComponent</span><span data-if="c" style="display:none">ReferenceComponent</span><span data-if="cpp" style="display:none">ReferenceComponent</span><span data-if="com" style="display:none">ReferenceComponent</span><span data-if="dotnet" style="display:none">referenceComponent</span><span data-if="python" style="display:none">reference_component</span></code></i></a> and <a href="#ToleranceComponent"><i><code><span data-if="hdevelop" style="display:inline">ToleranceComponent</span><span data-if="c" style="display:none">ToleranceComponent</span><span data-if="cpp" style="display:none">ToleranceComponent</span><span data-if="com" style="display:none">ToleranceComponent</span><span data-if="dotnet" style="display:none">toleranceComponent</span><span data-if="python" style="display:none">tolerance_component</span></code></i></a> can be
passed in one of the following ways: For each of both parameters
either one value, several values, or the string <i><span data-if="hdevelop" style="display:inline">'all'</span><span data-if="c" style="display:none">"all"</span><span data-if="cpp" style="display:none">"all"</span><span data-if="com" style="display:none">"all"</span><span data-if="dotnet" style="display:none">"all"</span><span data-if="python" style="display:none">"all"</span></i> can
be passed. The following table summarizes the different
possibilities by giving the affected relations for different
combinations of parameter values. Here, four model components are
assumed (0, 1, 2, and 3). If, for example,
<a href="#ReferenceComponent"><i><code><span data-if="hdevelop" style="display:inline">ReferenceComponent</span><span data-if="c" style="display:none">ReferenceComponent</span><span data-if="cpp" style="display:none">ReferenceComponent</span><span data-if="com" style="display:none">ReferenceComponent</span><span data-if="dotnet" style="display:none">referenceComponent</span><span data-if="python" style="display:none">reference_component</span></code></i></a> is set to <i>0</i> and
<a href="#ToleranceComponent"><i><code><span data-if="hdevelop" style="display:inline">ToleranceComponent</span><span data-if="c" style="display:none">ToleranceComponent</span><span data-if="cpp" style="display:none">ToleranceComponent</span><span data-if="com" style="display:none">ToleranceComponent</span><span data-if="dotnet" style="display:none">toleranceComponent</span><span data-if="python" style="display:none">tolerance_component</span></code></i></a> is set to <i>1</i>, then the relation
(0,1), which corresponds to the relative movement of component 1
with respect to component 0, will be modified.
</p>
<div style="text-align:center"><table style="margin-left:auto;margin-right:auto" class="table">
<col span="1">
<col span="1">
<col span="1">
<tr>
<th style="text-align:center">
<a href="#ReferenceComponent"><i><code><span data-if="hdevelop" style="display:inline">ReferenceComponent</span><span data-if="c" style="display:none">ReferenceComponent</span><span data-if="cpp" style="display:none">ReferenceComponent</span><span data-if="com" style="display:none">ReferenceComponent</span><span data-if="dotnet" style="display:none">referenceComponent</span><span data-if="python" style="display:none">reference_component</span></code></i></a> </th>
<th style="text-align:center"> <a href="#ToleranceComponent"><i><code><span data-if="hdevelop" style="display:inline">ToleranceComponent</span><span data-if="c" style="display:none">ToleranceComponent</span><span data-if="cpp" style="display:none">ToleranceComponent</span><span data-if="com" style="display:none">ToleranceComponent</span><span data-if="dotnet" style="display:none">toleranceComponent</span><span data-if="python" style="display:none">tolerance_component</span></code></i></a> </th>
<th style="text-align:left">
Affected Relation(s) </th>
</tr>
<tr>
<td style="text-align:center">
</td>
<td style="text-align:center">                    </td>
<td style="text-align:left">                   </td>
</tr>
<tr>
<td style="text-align:center">
'all'         </td>
<td style="text-align:center">        'all'       </td>
<td style="text-align:left"> (0,1) (0,2) (0,3) </td>
</tr>
<tr>
<td style="text-align:center">
</td>
<td style="text-align:center">                    </td>
<td style="text-align:left"> (1,0) (1,2) (1,3) </td>
</tr>
<tr>
<td style="text-align:center">
</td>
<td style="text-align:center">                    </td>
<td style="text-align:left"> (2,0) (2,1) (2,3) </td>
</tr>
<tr>
<td style="text-align:center">
</td>
<td style="text-align:center">                    </td>
<td style="text-align:left"> (3,0) (3,1) (3,2) </td>
</tr>
<tr>
<td style="text-align:center">
</td>
<td style="text-align:center">                    </td>
<td style="text-align:left">                   </td>
</tr>
<tr>
<td style="text-align:center">
'all'         </td>
<td style="text-align:center">       [1,2]        </td>
<td style="text-align:left"> (0,1) (0,2) </td>
</tr>
<tr>
<td style="text-align:center">
</td>
<td style="text-align:center">                    </td>
<td style="text-align:left"> (1,2) </td>
</tr>
<tr>
<td style="text-align:center">
</td>
<td style="text-align:center">                    </td>
<td style="text-align:left"> (2,1) </td>
</tr>
<tr>
<td style="text-align:center">
</td>
<td style="text-align:center">                    </td>
<td style="text-align:left"> (3,1) (3,2) </td>
</tr>
<tr>
<td style="text-align:center">
</td>
<td style="text-align:center">                    </td>
<td style="text-align:left">                   </td>
</tr>
<tr>
<td style="text-align:center">
[0,1]         </td>
<td style="text-align:center">        'all'       </td>
<td style="text-align:left"> (0,1) (0,2) (0,3)  </td>
</tr>
<tr>
<td style="text-align:center">
</td>
<td style="text-align:center">                    </td>
<td style="text-align:left"> (1,0) (1,2) (1,3) </td>
</tr>
<tr>
<td style="text-align:center">
</td>
<td style="text-align:center">                    </td>
<td style="text-align:left">                   </td>
</tr>
<tr>
<td style="text-align:center">
0           </td>
<td style="text-align:center">          1         </td>
<td style="text-align:left"> (0,1) </td>
</tr>
<tr>
<td style="text-align:center">
</td>
<td style="text-align:center">                    </td>
<td style="text-align:left">                   </td>
</tr>
<tr>
<td style="text-align:center">
0           </td>
<td style="text-align:center">        [1,2]       </td>
<td style="text-align:left"> (0,1) (0,2) </td>
</tr>
<tr>
<td style="text-align:center">
</td>
<td style="text-align:center">                    </td>
<td style="text-align:left">                   </td>
</tr>
<tr>
<td style="text-align:center">
[0,1]         </td>
<td style="text-align:center">          2         </td>
<td style="text-align:left"> (0,2) (1,2) </td>
</tr>
<tr>
<td style="text-align:center">
</td>
<td style="text-align:center">                    </td>
<td style="text-align:left">                   </td>
</tr>
<tr>
<td style="text-align:center">
[0,1,2]        </td>
<td style="text-align:center">       [1,2,3]      </td>
<td style="text-align:left"> (0,1) (1,2) (2,3)
</td>
</tr>
</table></div>
<p>The number of tolerance values passed in <a href="#PositionTolerance"><i><code><span data-if="hdevelop" style="display:inline">PositionTolerance</span><span data-if="c" style="display:none">PositionTolerance</span><span data-if="cpp" style="display:none">PositionTolerance</span><span data-if="com" style="display:none">PositionTolerance</span><span data-if="dotnet" style="display:none">positionTolerance</span><span data-if="python" style="display:none">position_tolerance</span></code></i></a>
and <a href="#AngleTolerance"><i><code><span data-if="hdevelop" style="display:inline">AngleTolerance</span><span data-if="c" style="display:none">AngleTolerance</span><span data-if="cpp" style="display:none">AngleTolerance</span><span data-if="com" style="display:none">AngleTolerance</span><span data-if="dotnet" style="display:none">angleTolerance</span><span data-if="python" style="display:none">angle_tolerance</span></code></i></a> must be either 1 or be equal to the
number of affected relations. In the former case all affected
relations are modified by the same value, whereas in the latter case
each relation can be modified individually by passing different
values within a tuple.</p>
<h2 id="sec_execution">运行信息</h2>
<ul>
  <li>多线程类型:可重入(与非独占操作符并行运行)。</li>
<li>多线程作用域:全局(可以从任何线程调用)。</li>
  <li>未经并行化处理。</li>
</ul>
<p>This operator modifies the state of the following input parameter:</p>
<ul><li><a href="#ComponentTrainingID"><span data-if="hdevelop" style="display:inline">ComponentTrainingID</span><span data-if="c" style="display:none">ComponentTrainingID</span><span data-if="cpp" style="display:none">ComponentTrainingID</span><span data-if="com" style="display:none">ComponentTrainingID</span><span data-if="dotnet" style="display:none">componentTrainingID</span><span data-if="python" style="display:none">component_training_id</span></a></li></ul>
<p>During execution of this operator, access to the value of this parameter must be synchronized if it is used across multiple threads.</p>
<h2 id="sec_parameters">参数表</h2>
  <div class="par">
<div class="parhead">
<span id="ComponentTrainingID" class="parname"><b><code><span data-if="hdevelop" style="display:inline">ComponentTrainingID</span><span data-if="c" style="display:none">ComponentTrainingID</span><span data-if="cpp" style="display:none">ComponentTrainingID</span><span data-if="com" style="display:none">ComponentTrainingID</span><span data-if="dotnet" style="display:none">componentTrainingID</span><span data-if="python" style="display:none">component_training_id</span></code></b> (input_control, state is modified)  </span><span>component_training <code>→</code> <span data-if="dotnet" style="display:none"><a href="HComponentTraining.html">HComponentTraining</a>, </span><span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">HHandle</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (handle)</span><span data-if="dotnet" style="display:none"> (<i>IntPtr</i>)</span><span data-if="cpp" style="display:none"> (<i>HHandle</i>)</span><span data-if="c" style="display:none"> (<i>handle</i>)</span></span>
</div>
<p class="pardesc">Handle of the training result.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="ReferenceComponent" class="parname"><b><code><span data-if="hdevelop" style="display:inline">ReferenceComponent</span><span data-if="c" style="display:none">ReferenceComponent</span><span data-if="cpp" style="display:none">ReferenceComponent</span><span data-if="com" style="display:none">ReferenceComponent</span><span data-if="dotnet" style="display:none">referenceComponent</span><span data-if="python" style="display:none">reference_component</span></code></b> (input_control)  </span><span>string(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">MaybeSequence[Union[int, str]]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (string / </span><span data-if="hdevelop" style="display:inline">integer)</span><span data-if="dotnet" style="display:none"> (<i>string</i> / </span><span data-if="dotnet" style="display:none">int / </span><span data-if="dotnet" style="display:none">long)</span><span data-if="cpp" style="display:none"> (<i>HString</i> / </span><span data-if="cpp" style="display:none">Hlong)</span><span data-if="c" style="display:none"> (<i>char*</i> / </span><span data-if="c" style="display:none">Hlong)</span></span>
</div>
<p class="pardesc">Model component(s) relative to which the movement(s)
should be modified.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>
    <span data-if="hdevelop" style="display:inline">'all'</span>
    <span data-if="c" style="display:none">"all"</span>
    <span data-if="cpp" style="display:none">"all"</span>
    <span data-if="com" style="display:none">"all"</span>
    <span data-if="dotnet" style="display:none">"all"</span>
    <span data-if="python" style="display:none">"all"</span>
</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span><span data-if="hdevelop" style="display:inline">'all'</span><span data-if="c" style="display:none">"all"</span><span data-if="cpp" style="display:none">"all"</span><span data-if="com" style="display:none">"all"</span><span data-if="dotnet" style="display:none">"all"</span><span data-if="python" style="display:none">"all"</span>, 0, 1, 2, 3, 4, 5, 6</p>
</div>
  <div class="par">
<div class="parhead">
<span id="ToleranceComponent" class="parname"><b><code><span data-if="hdevelop" style="display:inline">ToleranceComponent</span><span data-if="c" style="display:none">ToleranceComponent</span><span data-if="cpp" style="display:none">ToleranceComponent</span><span data-if="com" style="display:none">ToleranceComponent</span><span data-if="dotnet" style="display:none">toleranceComponent</span><span data-if="python" style="display:none">tolerance_component</span></code></b> (input_control)  </span><span>string(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">MaybeSequence[Union[int, str]]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (string / </span><span data-if="hdevelop" style="display:inline">integer)</span><span data-if="dotnet" style="display:none"> (<i>string</i> / </span><span data-if="dotnet" style="display:none">int / </span><span data-if="dotnet" style="display:none">long)</span><span data-if="cpp" style="display:none"> (<i>HString</i> / </span><span data-if="cpp" style="display:none">Hlong)</span><span data-if="c" style="display:none"> (<i>char*</i> / </span><span data-if="c" style="display:none">Hlong)</span></span>
</div>
<p class="pardesc">Model component(s) of which the relative movement(s)
should be modified.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>
    <span data-if="hdevelop" style="display:inline">'all'</span>
    <span data-if="c" style="display:none">"all"</span>
    <span data-if="cpp" style="display:none">"all"</span>
    <span data-if="com" style="display:none">"all"</span>
    <span data-if="dotnet" style="display:none">"all"</span>
    <span data-if="python" style="display:none">"all"</span>
</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span><span data-if="hdevelop" style="display:inline">'all'</span><span data-if="c" style="display:none">"all"</span><span data-if="cpp" style="display:none">"all"</span><span data-if="com" style="display:none">"all"</span><span data-if="dotnet" style="display:none">"all"</span><span data-if="python" style="display:none">"all"</span>, 0, 1, 2, 3, 4, 5, 6</p>
</div>
  <div class="par">
<div class="parhead">
<span id="PositionTolerance" class="parname"><b><code><span data-if="hdevelop" style="display:inline">PositionTolerance</span><span data-if="c" style="display:none">PositionTolerance</span><span data-if="cpp" style="display:none">PositionTolerance</span><span data-if="com" style="display:none">PositionTolerance</span><span data-if="dotnet" style="display:none">positionTolerance</span><span data-if="python" style="display:none">position_tolerance</span></code></b> (input_control)  </span><span>real(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">MaybeSequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Change of the position relation in pixels.</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span>1.0, 2.0, 3.0, 4.0, 5.0, 10.0, 20.0, 30.0</p>
</div>
  <div class="par">
<div class="parhead">
<span id="AngleTolerance" class="parname"><b><code><span data-if="hdevelop" style="display:inline">AngleTolerance</span><span data-if="c" style="display:none">AngleTolerance</span><span data-if="cpp" style="display:none">AngleTolerance</span><span data-if="com" style="display:none">AngleTolerance</span><span data-if="dotnet" style="display:none">angleTolerance</span><span data-if="python" style="display:none">angle_tolerance</span></code></b> (input_control)  </span><span>angle.rad(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">MaybeSequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Change of the orientation relation in radians.</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span>0.017, 0.035, 0.052, 0.070, 0.087, 0.175, 0.349</p>
</div>
<h2 id="sec_result">结果</h2>
<p>If the handle of the training result is valid, 该算子
<code><span data-if="hdevelop" style="display:inline">modify_component_relations</span><span data-if="c" style="display:none">modify_component_relations</span><span data-if="cpp" style="display:none">ModifyComponentRelations</span><span data-if="com" style="display:none">ModifyComponentRelations</span><span data-if="dotnet" style="display:none">ModifyComponentRelations</span><span data-if="python" style="display:none">modify_component_relations</span></code> 返回值 <TT>2</TT> (
      <TT>H_MSG_TRUE</TT>)
    .  If
necessary an exception is raised.</p>
<h2 id="sec_predecessors">可能的前置算子</h2>
<p>
<code><a href="train_model_components.html"><span data-if="hdevelop" style="display:inline">train_model_components</span><span data-if="c" style="display:none">train_model_components</span><span data-if="cpp" style="display:none">TrainModelComponents</span><span data-if="com" style="display:none">TrainModelComponents</span><span data-if="dotnet" style="display:none">TrainModelComponents</span><span data-if="python" style="display:none">train_model_components</span></a></code>
</p>
<h2 id="sec_successors">可能的后置算子</h2>
<p>
<code><a href="create_trained_component_model.html"><span data-if="hdevelop" style="display:inline">create_trained_component_model</span><span data-if="c" style="display:none">create_trained_component_model</span><span data-if="cpp" style="display:none">CreateTrainedComponentModel</span><span data-if="com" style="display:none">CreateTrainedComponentModel</span><span data-if="dotnet" style="display:none">CreateTrainedComponentModel</span><span data-if="python" style="display:none">create_trained_component_model</span></a></code>
</p>
<h2 id="sec_module">模块</h2>
<p>
Matching</p>
<!--OP_REF_FOOTER_START-->
<hr>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<div class="footer">
<div class="copyright">HALCON算子参考手册 Copyright © 2015-2023 51Halcon</div>
</div>
</div>
</body>
</html>
